package com.wuxinwudai.android.beans;

import android.os.Parcel;
import android.os.Parcelable;

import com.wuxinwudai.android.database.EntityBase;

/**
 * City 类存放城市信息
 * @author 吾心无待 于 2016年03月15日
 */
public class City extends EntityBase implements Parcelable {
    private String name;//城市名称
    private String zipCode;//邮政编码
    private int provinceID;//省份ID
    private Province province;//所属省份
    private String pinyin;//城市拼音
    private float longitude;//经度
    private float latitude;;//纬度

    /**
     * 获取城市名称
     * @return 返回城市名称
     */
    public String getName() {
        return name;
    }

    /**
     * 设置城市名称
     * @param name 城市名称
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * 获取城市邮编
     * @return 返回城市邮编
     */
    public String getZipCode() {
        return zipCode;
    }

    /**
     * 设置城市邮编
     * @param zipCode 城市邮编
     */
    public void setZipCode(String zipCode) {
        this.zipCode = zipCode;
    }

    /**
     * 获取所属省份 ID
     * @return 返回省份 ID
     */
    public int getProvinceID() {
        return provinceID;
    }

    /**
     * 设置所属省份 ID
     * @param provinceID 省份 ID
     */
    public void setProvinceID(int provinceID) {
        this.provinceID = provinceID;
    }

    /**
     * 获取所属省份
     * @return 返回 Province 对象
     */
    public Province getProvince() {
        return province;
    }

    /**
     * 设置所属省份
     * @param province 设置省份
     */
    public void setProvince(Province province) {
        this.province = province;
    }

    /**
     * 获取城市拼音
     * @return 返回城市拼音
     */
    public String getPinyin() {
        return pinyin;
    }

    /**
     * 设置城市拼音
     * @param pinyin 城市拼音
     */
    public void setPinyin(String pinyin) {
        this.pinyin = pinyin;
    }

    /**
     * 获取城市经度
     * @return 返回城市经度
     */
    public float getLongitude() {
        return longitude;
    }

    /**
     * 设置城市经度
     * @param longitude 城市经度
     */
    public void setLongitude(float longitude) {
        this.longitude = longitude;
    }

    /**
     * 获取城市纬度
     * @return 返回城市纬度
     */
    public float getLatitude() {
        return latitude;
    }

    /**
     * 设置城市纬度
     * @param latitude 城市纬度
     */
    public void setLatitude(float latitude) {
        this.latitude = latitude;
    }


    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeString(this.name);
        dest.writeString(this.zipCode);
        dest.writeInt(this.provinceID);
        dest.writeParcelable(this.province, flags);
        dest.writeString(this.pinyin);
        dest.writeFloat(this.longitude);
        dest.writeFloat(this.latitude);
        dest.writeInt(this.id);
    }

    public City() {
    }

    protected City(Parcel in) {
        this.name = in.readString();
        this.zipCode = in.readString();
        this.provinceID = in.readInt();
        this.province = in.readParcelable(Province.class.getClassLoader());
        this.pinyin = in.readString();
        this.longitude = in.readFloat();
        this.latitude = in.readFloat();
        this.id = in.readInt();
    }

    public static final Parcelable.Creator<City> CREATOR = new Parcelable.Creator<City>() {
        @Override
        public City createFromParcel(Parcel source) {
            return new City(source);
        }

        @Override
        public City[] newArray(int size) {
            return new City[size];
        }
    };
}
